/**
 * 
 */
package projeto.administrativo.checklist.cdp;

import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.OneToMany;
import javax.persistence.OrderBy;

import nucleo.comuns.util.UtilitarioSerializacao;
import plataforma.base.cdp.IObjetoAtivoInativo;
import plataforma.base.cdp.ObjetoPersistente;

/**
 * @author mike
 *
 */
@Entity
public class KChecklist extends ObjetoPersistente implements
		IObjetoAtivoInativo {

	/**
	 * 
	 */
	private static final long serialVersionUID = UtilitarioSerializacao.getIDSerializacao();
	
	private boolean ativo;
	private String descricao;
	private Set<KItemChecklist> listaKItemChecklist = new HashSet<KItemChecklist>();
	
	public KChecklist(){
		this.ativo = true;
	}
	
	/* (non-Javadoc)
	 * @see plataforma.base.cdp.IObjetoAtivoInativo#isAtivo()
	 */
	@Override
	@Column(columnDefinition="boolean default false")
	public boolean isAtivo() {
		return this.ativo;
	}

	/* (non-Javadoc)
	 * @see plataforma.base.cdp.IObjetoAtivoInativo#setAtivo(boolean)
	 */
	@Override
	public void setAtivo(boolean isAtivo) {
		this.ativo = isAtivo;
	}

	/**
	 * @return the descricao
	 */
	@Column(unique=true, nullable=false)
	public String getDescricao() {
		return descricao;
	}

	/**
	 * @param descricao the descricao to set
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	/**
	 * @return the listaKItemChecklist
	 */
	@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
	@OrderBy("numeroDeOrdemNoKChecklist")
	public Set<KItemChecklist> getListaKItemChecklist() {
		return listaKItemChecklist;
	}

	/**
	 * @param listaKItemChecklist the listaKItemChecklist to set
	 */
	public void setListaKItemChecklist(Set<KItemChecklist> listaKItemChecklist) {
		this.listaKItemChecklist = listaKItemChecklist;
	}

}
